Systems And Methods For Electronic Distribution Of Messages Over Communication Channels

ABSTRACT

Systems and methods are provided for electronically distributing messages over communication channels. In accordance with one implementation, a system is provided that comprises at least one database for storing instructions for operating an input field and transmitting messages over a plurality of different communication channels, and at least one processing system configured to execute the instructions, to perform a method. The method may include displaying to a user, over a network, an input field for entering messages and receiving from the user, over the network and by entry into the input field, a message, an identification of one or more recipients, and a selection of at least one communication channel. The method may also include determining whether an identifier is stored in relation to each recipient for the selected communication channel and electronically sending, to each recipient with a stored identifier, the message via the selected communication channel.

RELATED APPLICATIONS

This application claims the benefit of priority of U.S. ProvisionalPatent Application No. 61/296,844, filed on Jan. 20, 2010, and U.S.Provisional Patent Application No. 61/360,478, filed on Jun. 30, 2010.The disclosures of the above-referenced applications are expresslyincorporated herein by reference to their entireties.

TECHNICAL FIELD

The present disclosure relates generally to systems and methods formanaging electronic communications. More particularly, and withoutlimitation, the present disclosure relates to systems and methods forelectronically distributing messages over one or more communicationchannels. The present disclosure also relates to electronicallyproviding an interface, such as a universal input field, for managingand distributing messages over one or more communication channels.

BACKGROUND

As more people turn to electronic communications for their social andprofessional interaction with others, people are finding theirelectronic communications interfaces becoming cluttered andunmanageable. For instance, people now often use their e-mail accountsto send text-based messages, photographs, videos, songs, links to webpages, newsletters, invitations to events, etc. As a result, most peoplehave e-mail inboxes that are filled with a wide variety ofcommunications, which they receive at various times in the day, whetherthey are at or away from their computers. With the growth of mobiledevices and online applications, people are also sending more shortmessaging service (SMS) messages or “text messages” and instant messages(IMs), as well as messages specific to various social networkingportals.

The various proliferating forms of communication have made it difficultto select between these communication forms or channels in an intuitiveand efficient manner. For example, when deciding to send an electroniccommunication to another person, a user must decide whether to send ane-mail, an instant message (IM), a text message (SMS), a social portalmessage (e.g., Facebook message), or a status update, among othercommunication forms. The interfaces or systems for sending suchcommunications may exist in different places (e.g., email in a webmailbrowser, IM in a standalone software program, SMS in a mobile device,etc.), any of which may or may not be open or available at the user'sconvenience. For example, a person may wish to send an SMS even thoughhe or she does not have a mobile device handy. Alternatively, a personmight have a computer and mobile device at their disposal but be unsureof which form of communication their intended recipient may prefer toreceive. Moreover, some people may consciously prefer certaincommunication channels over others, or they may be unaware that theytend to use certain communication channels over others, based on whothey are communicating with, the time of day, day of week, location, andso on.

In view of the foregoing, there is a need for improved communicationssystems and methods that can overcome one or more of the problems setforth above. Moreover, there is a need for improved systems and methodsfor electronically distributing messages over communication channels, aswell as an improved interface for managing such messages.

SUMMARY

In accordance with the present disclosure, systems and methods areprovided for electronically distributing messages over one or morecommunication channels. Embodiments consistent with the presentdisclosure also encompass systems and methods for electronicallyproviding an interface, such as a universal input field, for managingand distributing messages over one or more communication channels.

In accordance with one disclosed exemplary embodiment, acomputer-implemented method for electronically distributing messages isprovided. The method may include displaying to a user, over a network,an input field for entering messages; receiving from the user, over thenetwork and by entry into the input field, a message, an identificationof one or more recipients, and a selection of a communication channel;determining whether an identifier is stored in relation to eachrecipient for the selected communication channel; and electronicallysending, to each recipient with a stored identifier, the message via theselected communication channel.

In accordance with another disclosed exemplary embodiment, a system forelectronically distributing messages over communication channels isdisclosed. The system includes at least one database for storinginstructions for operating an input field and transmitting messages overa plurality of different communication channels; and at least oneprocessing system. The processing system is configured to execute theinstructions and perform a method including: displaying to a user, overa network, an input field for entering messages; receiving from theuser, over the network and by entry into the input field, a message, anidentification of one or more recipients, and a selection of acommunication channel; determining whether an identifier is stored inrelation to each recipient for the selected communication channel; andelectronically sending, for each recipient with a stored identifier, themessage via the selected communication channel.

In accordance with another disclosed exemplary embodiment, acomputer-implemented method for electronically distributing messages isdisclosed. The method includes: displaying to a user, over a network, aninput field for entering messages; receiving from the user, over thenetwork and by entry into the input field, a message, an identificationof one or more recipients, and a request for auto-selection of acommunication channel; determining whether an address, phone number, orunique ID is stored in relation to each recipient for each of aplurality of available communication channels; ranking the availablecommunication channels for which an address, phone number, or unique IDis stored in relation to each recipient, according to one or morecriteria; and sending the message to at least one recipient based on theranking.

Before explaining certain embodiments of the disclosure in detail, it isto be understood that the disclosure is not limited in its applicationto the details of construction and to the arrangements of the componentsset forth in the following description or illustrated in the drawings.The disclosure is capable of embodiments in addition to those describedand of being practiced and carried out in various ways. Also, it is tobe understood that the phraseology and terminology employed herein, aswell as in the abstract, are for the purpose of description and shouldnot be regarded as limiting.

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate certain embodiments of thedisclosure, and together with the description, serve to explain theprinciples of the disclosure.

As such, those skilled in the art will appreciate that the conceptionupon which this disclosure is based may readily be utilized as a basisfor designing other structures, methods, and systems for carrying outthe several purposes of the present disclosure. It is important,therefore, to recognize that the claims should be regarded as includingsuch equivalent constructions insofar as they do not depart from thespirit and scope of the present disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this disclosure, illustrate several embodiments and aspects ofthe present disclosure, and together with the description, serve toexplain certain principles of the invention. In the drawings:

FIG. 1A is a block diagram of an exemplary communications environment100, consistent with embodiments of the present disclosure.

FIG. 1B is a block diagram of an exemplary back-end system ofcommunications system, consistent with embodiments of the presentdisclosure.

FIG. 2 is a screenshot of a web portal including an exemplary universalinput field, consistent with embodiments of the present disclosure.

FIGS. 3A-3D illustrate exemplary implementations of a universal inputfield, consistent with embodiments of the present disclosure.

FIG. 4 depicts an exemplary method for displaying a universal inputfield and distributing messages through varied communication channels,consistent with embodiments of the present disclosure.

FIGS. 5-11 depict screenshots of exemplary embodiments of a universalinput field, and flow diagrams for exemplary methods of displaying andmanipulating a universal input field for receiving messages andtransmitting those messages over varied communications channels,consistent with embodiments of the present disclosure.

FIG. 12 depicts a flowchart of another exemplary method for implementinga universal input field, consistent with embodiments of the presentdisclosure.

FIGS. 13-17B depict screenshots of additional exemplary universal inputfields and process flows for user interaction with such universal inputfields, consistent with embodiments of the present disclosure.

FIG. 18 depicts a flow diagram of another exemplary method forimplementing a universal input field, consistent with embodiments of thepresent disclosure.

FIGS. 19 and 20 depict screenshots of other exemplary embodiments of auniversal input field, consistent with embodiments of the presentdisclosure.

FIG. 21 depicts a flow diagram of an exemplary method for operating an“auto-mode” of a universal input field, consistent with embodiments ofthe present disclosure.

FIGS. 22-26 depict screenshots of exemplary universal input fieldsoperating in “auto-mode,” consistent with embodiments of the presentdisclosure.

DETAILED DESCRIPTION

Reference will now be made in detail to the present exemplaryembodiments of the invention, examples of which are illustrated in theaccompanying drawings. Wherever possible, the same reference numberswill be used throughout the drawings to refer to the same or like parts.

FIG. 1A is a block diagram of an exemplary communications environment100 in which embodiments of the present disclosure may be implemented.Communications environment 100 may include a multi-channel messagingsystem 103 provided in communication with an electronic network 101and/or a cellular network 110, for distributing messages over aplurality of different communication channels. In one embodiment,messages may initially be received from users by displaying a universalinput field on a website, online portal, webmail interface, or mobiledevice. Electronic communications may include, for example, electronicmail messages (i.e., “e-mails”), Short Messaging System (SMS) messages(i.e., “text messages”), Multimedia Messaging System (MMS) messages,etc., standardized calendar files, invitations, etc. Electroniccommunications or messages may also include electronic media contentsuch as, for example, photographs, videos, songs, newsletters, articles,web pages, streaming media, or any other electronic multimedia.

Multi-channel messaging system 103 and cellular network 110 may,together or separately, be configured to transmit and receive electroniccommunications or messages between users of email clients 102 and/ormobile devices 112. In one embodiment, email clients 102 may operate oncomputers or other web-enabled devices connected to electronic network101, while mobiles devices 112 may operate primarily relative to acellular network 110. Electronic network 101 may be any type of wide- orlocal-area network, such as the Internet. Cellular network 110 may beany type of radio network for broadcasting data, including but notlimited to Global System for Mobile Communications (GSM), General PacketRadio Service (GPRS), Code Division Multiple Access (CDMA),Evolution-Data Optimized (EV-DO), Enhanced Data Rates for GSM Evolution(EDGE), 3GSM, Digital Enhanced Cordless Telecommunications (DECT),Digital AMPS (IS-136/TDMA), and Integrated Digital Enhanced Network(iDEN).

Of course, as communications technologies have advanced, the traditionalbarriers between computers and mobile devices have broken down. Forexample, individuals may use e-mail or IM software on mobile devices,such as smartphones, tablets, or personal digital assistants (PDAs).Alternatively, individuals may send SMS messages and place voice callsover computers, televisions, or any other Internet-enabled device (e.g.,using Voice Over Internet Protocol “VOIP”). Any such mobile ornon-mobile devices may transmit electronic messages over wired and/orwireless communication systems, including one or more of cellularnetworks, local- or wide-area networks, and the Internet. Thus, it willbe appreciated that the presently-disclosed systems and methods areapplicable to literally any type of device or software that people useto send and receive communications, whether over the Internet orcellular networks, and whether considered mobile, or not.

As shown in FIG. 1A, multi-channel messaging system 103 may include aplurality of email servers 104, and a plurality of web servers 106 alldisposed in communication with electronic network 101 and/or cellularnetwork 110. In one exemplary embodiment, users of email clients 102and/or mobile devices 112 may interact with web pages or webmail portalsrunning on web servers 106. Web servers 106 may interact with emailservers 104, either directly or through the Internet 110, in order tosend and receive emails and other communications to and from other usersin the communications environment 100. Email clients 102 and/or mobiledevices 112 may each interact with email servers 104 and/or web servers106 through computers connected to the electronic network 101 (such asthe Internet), or through mobile communications devices, such as mobilephones and PDAs.

In one embodiment, multi-channel messaging system 103 may include aback-end system 108, including one or more database systems 114 andprocessing systems 116. In general, email servers 104, web servers 106,and back-end system 108 may be configured to facilitate the exemplarydisclosed universal input field for receiving messages from users anddistributing electronic messages over one or more selected communicationchannels. As described above, communication channels may include e-mailmessaging, SMS text messaging, instant messaging (also called, “chat”),social network messaging, social network updating, voice calling, voicemails, or any other mechanism for transmitting an electronic messagebetween people over an electronic network. In one embodiment, a channelmay actually include a plurality of channels. For example, a user mayelect to send the same electronic message over two or more of: e-mailmessaging, SMS text messaging, instant messaging, social networkmessaging, social network updating, etc.

As will be described in more detail below, database systems 114 may beimplemented as one or a series of physical storage devices configured tostore data and instructions for implementing a universal input field anddistributing electronic messages over varied communication channels. Asshown in FIG. 1B, database systems 114 may include the storage ofcontact lists 502, including phone numbers, email addresses, unique userIDs, or other identifiers stored in a profile for users incommunications environment 100. In one embodiment, contact lists 502 mayinclude information for users who have registered using web servers 106,as well as friends and other contacts of those registered users. As willbe appreciated by those of skill in the art, any users of the Internetmay register with the network by providing, e.g., a username, password,and other identifying information. Alternatively, users may registerwith the network using partner log-in data, or universal log-ins thatare recognized and accepted by the network.

Registered users may then create a profile having contact information,such as an email address and/or phone number. Registered users may alsostore preferences defining how they wish to be contacted. For example,users may indicate that they prefer to be contacted by one communicationchannel over another, or in a sequence of preferred channels. Similarly,users may indicate that they prefer to be contacted by certain channelsbased on the identity of the person contacting them, the time of day,day of week, their location, etc. Database systems 114 may store suchpreference information, and make it available to the system when it isperforming automatic selection of a communication channel. Databasesystems 114 may also store users' communication history 504, users'current availability 506, and users' social norm data 508.

In addition, database systems 114 may store instructions or computerprograms for performing the methods disclosed herein. For example,database systems 114 may store an input field display program 510 forcontrolling how a universal input field is displayed and modified baseduser interaction. Database systems 114 may also store an auto-modechannel selection program 512 for automatically selecting acommunications channel for a user, as disclosed in more detail herein.

Processing systems 116 may be implemented as one or more processorsconfigured to execute instructions stored in database systems 114, forimplementing a universal input field and distributing electronicmessages over varied communication channels. As shown in FIG. 16,processing systems 116 may include various modules or engines forprocessing data, including but not limited to an input field displayengine 520, an auto-mode channel selection engine 522, and a messagesending engine 524. Input field display engine 520 may execute inputfield display program 510, for controlling how a universal input fieldis displayed and modified based user interaction. Auto-mode channelselection engine 522 may execute auto-mode channel selection program 512for automatically selecting a communications channel for a user, asdesired.

As described above, embodiments of the present disclosure may includedisplaying a universal input field for managing and distributingmessages. The universal input field may be provided in connection with,for example, a website, online portal, webmail interface, or mobiledevice. FIG. 2 depicts a screenshot of an exemplary web portal 120including an exemplary universal input field 122. Universal input field122 may be generated by input field display engine 520 according toinput field display program 510, and configured to display data to usersand receive input from users. In one embodiment, universal input field122 may initially be displayed including the instructions, “Send a quickmessage here . . . ” along with a “Send” button to the side of theuniversal input field 122. As described above with respect to FIG. 1A,web servers 106 may be configured to operate web portal 120, by makingit available for display on email clients 102 and/or mobile devices 112.In one embodiment, the universal input field 122 may be positioned atthe top of an inbox of web portal 120. Of course, it will be appreciatedthat universal input field 122 may be positioned anywhere in an inbox orweb portal, in any size, shape, or position relative to an inbox or webportal.

In one embodiment, all of a user's emails, messages, social networkingupdates, etc. may be displayed in web portal 120 in a list view by orderof receipt, for example. Each listed communication may include the nameof a sender or poster, a post time or time since receipt, a preview of amessage, and/or an avatar or thumbnail picture associated with thesender or poster. In general, web portal 120 may perform emailaggregation in the general format of a web-based email system (i.e.,“webmail”). When a user logs-on to the portal, the user may be presentedwith a combination of emails from various personal email accounts, butnot with unwanted spam or other categories of messages until they areselected. The portal may add all of a user's news and/or blogs to theportal in a newspaper format 124 and allow the user to aggregate allsocial networking updates, pictures, etc. in the e-mail portal.Furthermore, web portal 120 may allow a user to move specific emails, oreven specific emails and emails similar to those emails, to thenewsletter area. By scanning incoming mail, the portal may also be ableto auto-categorize e-mail, and pick out events and add them to a user'scalendar 126. The portal may also perform social aggregation so as tocombine all of a user's social inputs, including text, photos, videos,links, people, mail, media, events, contacts, etc. The user can alsoshare photos, videos, etc. or post them directly to any socialnetworking site.

Web portal 120 may also incorporate instant messaging services in theportal, through any of the email or social networking accounts added tothe portal. A user may search all of the user's emails, messages, socialnetworking communications, events, albums, etc. or any other textassociated with the user's portal, using a single search mechanism. Webportal 120 may also display online content relevant to search termsentered into a spotlight search, through a search drop-down menu. Thus,even if a user only plans on searching the user's own communications,the portal might direct the user to content outside of the user'sportal. The relevant web content may be displayed not just in a searchdrop-down menu, but also adjacent to actual search results from theuser's portal.

Web portals and similar mobile programs may aggregate numerous modes orchannels of communication, any of which a user may desire to leveragewhen communicating with the user's contacts. To facilitate suchcommunication, as will be described in more detail below, universalinput field 122 may allow users to enter messages for distribution overone or more communication channels, by selecting or inputting: (1) aselected communication channel (e.g., “e-mail,” “SMS,” “IM,” “Tweet,”“Status,” etc.), (2) one or more target recipients (e.g., “John,” “Sue,”“Friends,” “Family,” etc.), and (3) a message intended to be deliveredto the target recipients through the selected communication channel. Forinstance, a user may simply type into universal input field 122 thephrase, “IM John See you later” to automatically send John an instantmessage that says, “See you later.” Alternatively, a user may type,“Email Bill Hey Bill, Let's watch Avatar soon,” to automatically sendBill an email that says, “Hey Bill, Let's watch Avatar soon.”Alternatively, the user may type “Share Friends I'm bored” to update theuser's friends via a social networking account. The user may also type“SMS” or “Text” to send communications through cellular network 110. Theuser may also simply type “Status I'm at work” to update a socialnetworking status, including a status on Facebook, Lifestream, Twitter,or any other social network. In each case, message sending engine 524 ofprocessing systems 116 may parse and process the inputs to universalinput field 122, and manage distribution of the desired message overelectronic network 101 and/or cellular network 110. In one embodiment, auser may elect to send an electronic message over two or more channels.For example, the user may select two or more of: e-mail messaging, SMStext messaging, instant messaging, social network messaging, socialnetwork updating, etc., and send the same message to one or morerecipients over the plurality of selected channels.

Certain communications channels may require or offer a selection oftarget recipients, whereas others may be broadcast publicly to anyone.Moreover, the universal input field 122 may interface with varioussocial media providers, such as Facebook and Twitter, as well mobilecommunications services, such as AT&T or Verizon. Thus, the portal mayobviate the need for users to open new windows, because the portal cansend and receive messages using any service (IM, SMS, etc.), accessmultiple address books, and consolidate multiple email or socialnetworking accounts.

In general, universal input field 122 may be used primarily for thepurpose of initiating a conversation with other users. That is, it maybe used to make first contact within any given conversation. Subsequentcommunications, such as responses from the recipient, may be shown inrelation to the specific communication channels, e.g., in an emailstring, in a chat/IM window, etc. However, it will be appreciated thatuniversal input field 122 may also be modified to support the display ofresponses to communications sent through the universal input field 122.For instance, in one embodiment, universal input field 122 could displayresponses for a limited period of time, to alert the sender to anyprompt responses. For example, the universal input field 122 couldflash, and/or show a preview of any responses, and then return to itsstatic state.

FIGS. 3A-3D display exemplary implementations of a universal inputfield. FIG. 3A depicts an embodiment in which a universal input field302 is implemented as part of an application running on, e.g., the“desktop” of an operating system 301. FIG. 3B depicts an embodiment inwhich a universal input field 304 is implemented as a toolbar of a webbrowser 305. FIG. 3C depicts an embodiment in which universal inputfield 306 is an application running on a mobile device 307. FIG. 3Ddepicts an embodiment in which a universal input field is operated as anSMS interface on a mobile device 308. In certain embodiments, theuniversal input field may be implemented as a recipient named “GoBar,”“QuickBar,” or any other easy-to-remember recipient name configured toreceive a selected communication channel, one or more recipients, and amessage. The embodiments of FIGS. 2 and 3A-3D are not to be construed aslimiting, but rather as examples of how a universal input field may beembodied in or using virtually any type of operating system, software,or device.

FIG. 4 depicts an exemplary method 200 for displaying a universal inputfield and electronically distributing messages through communicationchannels. Method 200 may include displaying an input field (Step 202).The input field may be any suitable type of user interface, such as atext field, plurality of buttons, drop-down menus, forms, etc. Asdescribed with respect to FIGS. 2 and 3A-3D, an input field may bedisplayed on any type of operating system, software, or device. Databasesystems 114 may store instructions for displaying a universal inputfield, based on the type of operating system, software, or device, andfor modifying the displayed universal input field based on userinteraction.

Method 200 may further include receiving a user's selection of a desiredcommunication channel, in the input field (Step 204). In one embodiment,the input field may include icons representative of differentcommunication channels, which a user may select with a mouse, pointer,or touchscreen. Alternatively, a user may select a communication channelby starting to type, in the input field, the words, “email,” “text,”“IM,” “status,” etc., among other available communication channels. Inone embodiment, drop-down menus may automatically appear when a user istyping in a communication channel, based on the available communicationchannels.

Method 200 may further include receiving a user's selection of one ormore recipients, in the input field (Step 206). For example, a user maytype recipient names into the input field, select icons representing theuser names, and/or use other interface mechanisms to identify desiredrecipients of a message. In one embodiment, drop-down menus may alsoappear when a user is typing in a recipient's name, based on contactsstored in the portal. Alternatively, the input field may display allavailable contacts from the user's address book or other contact list.In one embodiment, the input field may only list those contacts havingcontact info for the selected communications channel.

Method 200 may further include determining whether an address, phonenumber, unique ID, or another identifier is stored for sendingcommunications to each recipient via the selected communications channel(Step 208). By way of example, if the user has elected to “email” hisfriend “Joe,” step 208 may include confirming whether an email addressis stored in database systems 114 for Joe. If the user has elected to“text” his friend “Sue,” step 208 may include confirming whether amobile number is stored in database systems 114 for sending SMS messagesto Sue. If a suitable address, phone number, unique ID, or otheridentifier is not stored in database systems 114 for the one or morerecipients (Step 210: “No”), then method 200 may further includetransmitting an error message to the user, requesting the user'sselection of an alternate communications channel, and/or requesting thatthe user input a suitable address, number or other identifier, via theinput field, for any of the selected recipient(s) for which such anidentifier is not already stored in database systems 114 (Step 212). Ifa suitable address, phone number, unique ID, or other identifier isindeed stored in database systems 114 for the one or more recipients(Step 210: “Yes”), then method 200 may further include receiving userinput of a message via the input field (Step 214). In one embodiment,method 200 may perform the determining step 208 while a user is alreadyentering a message into the input field. The user's message may bereceived as keystrokes, taps, touchscreen swipes, voice commands, or anyother known techniques for inputting, processing, and/or receivingtextual data.

Once a user has entered a message and indicated completion and desire tosend the message (e.g., by clicking a “Send” button or hitting an“Enter” key), then method 200 may further include transmitting themessage to the one or more selected recipients through the selectedcommunication channel (step 216). For example, if the selectedcommunication channel is email, then back-end system 108 may send theemail components or even a fully-assembled email to email servers 104,through web servers 106, for delivery. If the selected communicationchannel is an SMS message, then back-end system 108 may send a desiredSMS message to cellular network 110, through web servers 106, fordelivery to SMS clients (e.g., mobile devices 112). In any case, messagesending engine 524 of processing systems 116 may parse the receivedinformation, including channel selection, recipient(s), and message, andprocess the communication for delivery over electronic network 101and/or cellular network 110.

FIGS. 5-11 depict screenshots of exemplary embodiments of a universalinput field, and flow diagrams for exemplary methods of displaying andmanipulating a universal input field for receiving and transmittingmessages over varied communications channels. FIG. 5 depicts anexemplary input field 501 that displays the instructions, “Send a quickmessage here . . . .” When a user places a cursor into the input field,the instructions may be modified to read, “What kind of message?” and adrop-down menu 503 may appear for providing the user with a selection ofavailable communication channels, including but not limited to, “Email,”“Instant Message,” “Text Message,” “Status Update,” “Share,” and “Switchto Auto Mode” (the Auto Mode being an automatic selection of acommunication channel based on predetermined criteria, as will bedescribed in more detail below). As shown in FIG. 5, if a user hasselected “Email,” an email icon 505 may be displayed in the input field,and the user's “From” email address (e.g., ChattingChuck@aol.com) may bedisplayed above the input field. Once a user has moved the cursor to theright of the email icon, the input field may also modify theinstructions to say, “Email whom?” The user may then begin to type oneor more recipient names into the input field. As shown in FIG. 5, adrop-down menu 507 may be displayed for providing the user with aselection of available contacts for whom an email address is stored. Theuser may arrow down to, or click on, one or more of those contacts,whose icons 509 may appear in the input field. As described above, inone embodiment, the system may only display those contacts for whom anaddress, phone number, unique ID, or other identifier is stored inrelation to the already-selected communications channel. For instance,based on the selected communication channel, the input field displayengine 520 may search contact lists 502 for suitable contactinformation. The input field instructions may then be modified to say,“Now type your message” A user may then type the message that the userdesires to send, in this case, to “Bill Wetherell” by “Email.” Uponfinishing entering the desired message, the user may click a “Send”button or hit an “Enter” key, and the input field may darken while themessage is being sent, before refreshing to its original state, forreceipt and sending of another communication. FIG. 6 depicts anembodiment of universal input field 501, whereby, if a user begins totype more than a preset number of characters or words into the message,the input field will expand into an expanded input field 511, which isexpanded sufficient to display all of or at least more of the user'sinput message.

FIG. 7 depicts another exemplary flow of universal input fields where,upon entry of a selected communication channel (in this case, “Email”)and a selected recipient (in this case, “Bill Wetherell”) the system mayperform a step 527 of determining whether sufficient contact informationis stored to send a communication to the selected recipient via theselected communications medium. As discussed above, the input fielddisplay engine 520 may search contact lists 502 for suitable contactinformation. If sufficient contact information is stored in databasesystems 114, the user is allowed to proceed with typing a message andhitting the “Send” button 529. If sufficient contact information is notstored, the user is informed by notice 531 and asked to supply theneeded information. FIG. 8 shows an example of how, once a user hasreceived a notice 531 that insufficient contact information is storedfor sending a message to the selected recipient through the selectedcommunications medium, the user may instead enter such contactinformation directly as a recipient. By way of example, FIG. 8 shows howthe user can simply enter a phone number 533 as the desired recipient.Of course, the user could alternatively enter the contact informationinto a recipient profile, or select an alternate recipient.

FIG. 9 depicts an exemplary embodiment of universal input field 501where a user has selected “IM” as the desired communications channelfrom a drop-down list 503 of available communications channels. Inaddition, a user has selected a recipient from a drop-down list 507 ofavailable recipients. As shown in FIG. 9, once the user has entered amessage and hit “Send,” the desired instant message may appear within aninstant messaging window 517, for example overlaying an inbox, website,or other web portal. Thus, universal input field 501 may be a convenientmechanism for users to easily initiate instant messaging conversations,by simply selecting “IM” and entering a recipient and message into afield at the top of an inbox.

FIG. 10A shows an example of how, when a user has selected “IM” as thedesired communications channel, the universal input field may display adrop-down recipient list 507 that shows whether the potential IMrecipients are “online” and available for IM messaging, or “offline” andunavailable for IM messaging. For example, input field display engine520 may search current availability database 506 in database systems 114to cross-reference the potential recipient list against users that are“online.”

FIG. 10B shows another example of how, when a user proceeds with IMmessaging a user who is offline, the universal input field mayautomatically switch to a more suitable communications channel (in thiscase “Text” channel 519). Alternatively, even if a recipient user is“offline” and therefore unable to receive instant messages, an instantmessage may be sent to the recipient's email or other communicationsportal and delivered to the recipient when they are back online. Forinstance, for those users that do not appear as “online” upon a searchof current availability database 506 in database systems 114, the inputfield display engine 520 may alternatively search contact lists 502 foran alternate address or phone number.

FIG. 11 shows an exemplary embodiment of universal input field 501 inwhich a user has selected “Text” as the desired communications channel.More specifically, once has a user has selected “Text” (i.e., SMSmessaging via cellular network 110), a drop-down recipient list 507 mayshow contacts having mobile numbers that can be text messaged. Moreover,because SMS messaging may include character or word limits, theuniversal input field 501 of FIG. 11 may display at note 521 how manymessages will be sent (in this case, 3) to send the user's entiredesired message by SMS.

As described above, universal input fields may be flexible and allow forvarious manipulations by users, for the purpose of switching betweencommunications channels, adding/subtracting recipients, and changing thedesired message. FIG. 12 depicts a flowchart of another exemplary method300 for implementing a flexible and useful universal input field. Inparticular, method 300 may include displaying an input field andinstructions based on the content, view, or website shown with the inputfield (Step 302). For example, the displayed input field andinstructions may vary depending on whether they are displayed on amobile device or web browser.

Method 300 may include receiving a user's selection of a communicationschannel, in the input field (Step 304). In one embodiment, the inputfield may include icons representative of different communicationchannels, which a user may select with a mouse, pointer, or touchscreen.Alternatively, a user may select a communication channel by starting totype, in the input field, the words, “email,” “text,” “IM,” “status,”etc., among other available communication channels. In one embodiment,drop-down menus may automatically appear when a user is typing in acommunication channel, based on the available communication channels.Method 300 may further include providing a function by which a user canswitch between selected communications channels (Step 314). For example,a user can click on an icon of the already-selected communicationschannel to display a drop-down list of alternate communicationschannels. Method 300 may then include modifying the displayedinstructions based on the selected communications channel (Step 306).For example, if the user has selected “Email” as the desiredcommunications channel, the input field may display the words “Emailwhom?”, and so on.

Method 300 may further include receiving a user's selection of one ormore recipients, in the input field (Step 308). For example, a user maytype recipient names into the input field, select icons representing theuser names, and/or use other interface functions to identify desiredrecipients of a message. In one embodiment, drop-down menus may alsoappear when a user is typing in a recipient's name, based on contactsstored in the portal. Alternatively, the input field may display allavailable contacts from the user's address book or other contact list.In one embodiment, the input field may only list those contacts havingcontact info for the selected communications channel. Method 300 mayfurther include providing a function for the user to add, remove, and/ormodify selected recipients (Step 316). For example, by mousing overicons for already-selected recipients in the input field, buttons may bedisplayed that the user can manipulate to delete or add users. Method300 may then include modifying the displayed instructions based on theselected recipients or user interaction (Step 310). For example, if theuser has selected at least one recipient, or if the user has indicatedthat he or she has finished adding recipients, then the instructions maybe modified to read, e.g., “Type your message here.”

Method 300 may further include receiving user input of a message throughthe input field (Step 312). For example, the user may type the messageinto the input field, or speak it into the input field by using voicerecognition techniques that can be built-in to the input field. Method300 may then include providing a function for the user to add, remove,and/or modify text in the message (Step 318). For example, the user mayuse a cursor to highlight, cut, and/or paste text, use a keyboard and/ormouse to select and edit text, or use other known user interfacemechanisms.

FIG. 13 depicts screenshots of additional exemplary universal inputfields 501 and process flows for user interaction with such universalinput fields. For example, FIG. 13 depicts a universal input field 501having icons 523 therein, which a user can click or otherwise manipulateto select corresponding communications channels. Like theearlier-described figures, FIG. 13 shows an example of how a user maybegin typing recipient names, select one or more recipients from adrop-down list, and type a message, all by manipulating the universalinput field 501. Likewise, FIG. 14 shows an example of how a user maybegin typing an email to one recipient, and then mouse over an icon 525for the last identified recipient to click a “plus” button for addingadditional recipients to the “To:” list for the typed email.

FIG. 15A depicts another exemplary embodiment of universal input field501, in which a user desires to switch from a selected communicationschannel to another communications channel. As shown in FIG. 15A, a usermay click on an icon 513 of the already-selected communications channel(in this case “Email”) to make a communications channel drop-down 503appear. The user may then click on one of the other availablecommunications channels (in this case “Text Message”) to send a messageby that other communications channel.

FIG. 15B depicts an exemplary embodiment of universal input field 501 inwhich, when a user “mouses over” an already-selected recipient, a deleteicon 515 appears for removing that recipient from the list ofrecipients.

FIG. 16 depicts an exemplary embodiment of universal input field 501where, after receipt of an indicated recipient, a user is advised to“Press down arrow to add another recipient.” or “Press up arrow to startyour message.” If the user presses the “down arrow” key, a drop-downlist of contacts 507 appears based on any characters already typed intothe input field, which the user can select instead of finishing typing arecipient's name. As discussed above, drop-down list of contacts 507 canessentially display “auto-complete” options based on one or more firstfew characters of a recipient name, and can also be limited to show onlythose recipients for whom contact information is stored for thealready-selected communications channel (in this case, “Email”).

FIG. 17A depicts an exemplary embodiment of universal input field 501 inwhich a user has elected to send a social networking status update, asevidenced by status icon 535 in the field. FIG. 17A also depicts aplurality of toggle icons 537, each of which represents a social networkand which the user can toggle on or off to selectively send the desiredsocial networking update to selected social networks. FIG. 17A alsoshows how, if a user selects to send a message via communicationschannel drop-down menu 503, instead of the social networking update, theuser may be prompted to select one or more intended recipients, e.g.,with the prompt, “Email whom?”, since the new channel is not a broadcastcommunication.

FIG. 17B depicts an example of how, if a user elects to send a statusupdate via communications channel drop-down menu 503, after alreadyhaving set up a message to one or more recipients, the recipients may beremoved since the status update will be a broadcast communications sentto the recipients pre-set in the selected social network.

FIG. 18 depicts a flow diagram of another exemplary method 400 forimplementing a universal input field, particularly in the context ofsocial networking integration. Method 400 may include displaying aninput field through a user's client device (Step 402). Method 400 mayfurther include displaying, in the input field, icons representingcommunications channels that the user can select (Step 404). Method 400may further include displaying, outside the input field, user elementsthat the user can select to switch between social networks used as oneof the communications channels (Step 406). For example, method 400 mayinclude displaying a plurality of toggle icons above the input field,each of which represents a social network that the user can toggle on oroff to selectively include social networks as part of a socialnetworking update within the available communications channels.

Method 400 may further include displaying a drop-down menu containingavailable communications channels for selection (Step 408.) In oneembodiment, a social networking update is listed as one of the availablecommunications channels. In an alternative embodiment, Step 406 is onlyperformed if a social networking update is selected as the desiredcommunications channel. Method 400 may further include, upon receipt ofat least one or more letters of a recipient name, displaying a drop-downmenu of contact recipients determined as matching the input lettersand/or the selected communications channel (Step 410).

Consistent with method 400, FIG. 19 depicts an exemplary embodiment ofuniversal input field 501 where, when a user has selected “StatusUpdate” from a drop-down list 503 of available communications channels,the input field may be modified to include a plurality of toggle icons537, each of which represents a social network that the user can toggleon or off to selectively send the desired social networking update toselected social networks.

FIG. 20 depicts another exemplary universal input field 501 wheredrop-down menu 503 of available communications channels includes anoption for “Sharing” multimedia with one or more intended recipients.Universal input field 501 may prompt the user to select intendedrecipients of the multimedia, with the recipients potentially includingindividuals, social networks, and/or multimedia sharing accounts.Universal input field 501 may expand to include a section 541, intowhich a user may drag any type of electronic content, multimedia, orother electronic files for sharing to the selected recipients overelectronic network 101. If a selected communication channel does notsupport the transfer of a file, the system may automatically upload thefile to a central server in lieu of transferring it, and instead simplyinclude a textual link (e.g., a URL), by which the recipient can accessand download the file using another communication channel that supportsfile transfer.

FIGS. 21-26 depict embodiments for an exemplary “auto-mode” of operatinga universal input field. As described above, an “auto-mode” may bedisplayed in a drop-down menu of available communication channels, eventhough it is not itself a specific channel. Rather, auto-mode mayautomatically select a communications channel for the user, based on ormore selected criteria, history, or other parameters. For example, basedon input provided through the universal input field, back-end systems108 may automatically predict the best method to use for messaging oneof the user's contacts. In one embodiment, back-end systems 108 may takeinto account available contact information, communication history,current availability, and/or current social norms with respect tovarious types of communications, when determining how to messagesomeone. For example, if two people always email each other, the systemmay set the default communication medium as emailing. If those twopeople switch to SMS text message on certain days of the week, then thesystem may switch to text message on those days. Accordingly, theautomatic mode may simplify a user's interaction with the web portal bydetermining for the user how the user should best message variouscontacts.

FIG. 21 depicts a flow diagram of an exemplary method 600 forimplementing an auto-mode for selecting between available communicationschannels, using a universal input field. Method 600 may includereceiving a user's selection of the automatic mode for selecting acommunications channel (Step 602). Method 600 may further includereceiving a user's selection of one or more recipients (Step 604).

Method 600 may further include executing an auto-mode channel selectionengine (Step 606), based on the user's selection of one or morerecipients. The auto-mode channel selection engine 522 may be any set ofinstructions for defining how to select a communication channel based onone or more pieces of information or criteria. For example, the channelselection engine 522 could select channels solely based on the identityof the recipient, or based on a virtually limitless stream of collecteddata and updated heuristics. In one embodiment, the user may customizesettings of the system to reflect certain preferences for particularcommunications media or social contacts. For example, a user coulddefine that, “Whatever I type to Sue, I want to send by SMS” or“Whatever I send by e-mail should include my signature.” In anotherembodiment, the system may use machine learning techniques to determinewhich users in the network prefer which communications. For example, auser could place the system in “smart mode” to let the system send Johnthe communication by his preset or machine-learned favoritecommunication medium.

As described above, in one embodiment, the channel selection engine 522may be programmed to incorporate as inputs: available contactinformation 502, communication history 504, current availability 506,and/or social norms 508. Each of the contact information 502,communication history 504, current availability 506, and/or social norms508 may be stored in database systems 116 with respect to profiles foreach user and/or user's contact. In one embodiment, the channelselection engine 522 may first exclude any communications channels forwhich contact info for the one or more selected recipients is notincluded in available contact information 502. Channel selection engine522 may then exclude any communication channels for which the recipientis not included in current availability 506. For example, if therecipient is not online, the engine may exclude instant messaging. Ifthe recipient's mobile device is not activated or turned on, the enginemay exclude SMS text messaging, and so on. In addition, the engine mayexclude certain communications channels that are inconsistent withsocial norms. For example, if users tend to not use SMS text messageswhile they are in their homes, then the engine may exclude SMS textmessaging as an available communication channel if the indicatedrecipient is known to be in his or her home (e.g., due to presenceonline, accessing their home Wi-Fi network, indicating “home” in theirstatus, etc.) Conversely, if users tend prefer SMS text messages whilethey are not in their homes, then the engine may include or even rankhigher SMS text messaging as an available communication channel if theindicated recipient is known to be away his or her home (e.g., due topresence offline, accessing a public Wi-Fi network, indicating “away” intheir status, etc.) Similarly, if users tend to prefer certaincommunications channels over others based on the time of day, day ofweek, or any other environmental factors, the engine may include,exclude, or adjust in rank any communications channels within a list ofavailable communications channels based on available information.

After excluding or re-ranking any unavailable or unsuitablecommunications channels based on environmental or circumstantialfactors, the engine may rank the remaining communications channels bypast usage stored in communication history 504. For example, if theuser's past usage with the selected recipient indicates mostly one typeof channel, then that channel will be ranked higher. If the user's pastusage with the selected recipient indicates that they mostly avoidedusing a particular channel, then that channel will be ranked lower, andso on. Of course, it will be appreciated by those of skill in the artthat almost any suitable ranking algorithm may be used to prune and rankavailable communications channels based on any desired parameters orinformation. In addition, parameters may be selectively weighted byimportance. For example, if past communication history 504 is consideredmore important than social norms 508 (such as time-of-day), then thehistory may be weighted higher to factor more heavily into thecommunications channel that is ultimately selected by the engine.

After execution of the auto-mode channel selection engine 522 (Step606), method 600 may further include displaying the auto-selectedcommunication channel (Step 608). Method 600 may further includedisplaying a mechanism by which a user can view the auto-selection logic(Step 610). For example, the user may be presented with at least onepiece of information about why a particular communications channel wasselected over the others. Method 600 may further include displaying amechanism by which a user can switch to another communications channel,besides the one auto-selected by the channel selection mechanism (Step612).

FIG. 22 depicts exemplary screenshots and process flows for anotherexemplary embodiment of universal input field 501, including the stepsof method 600. As shown in FIG. 22, a user may manipulate universalinput field 501 so as to view a drop-down menu 503 of availablecommunication channels, including an option to “Switch to Auto Mode.”Upon selection of “Auto Mode,” the universal input field 501 may displaythe prompts: “Talk to Whom? Or Status Update|Share Pictures.” Asdescribed before, the user may simply type the first few letters of apotential recipient's name, and select one or more users from adrop-down menu 507 of available contact persons. Upon selecting one ormore recipients, the universal input field 501 and back-end system 108may execute the channel selection engine 522 of method 600 to determinewhich communications channel to use for the selected recipients.Assuming the channel selection engine has selected email as thepreferred communications channel, back-end system 108 may modifyuniversal input field 501 to display the user's “From:” address (in thiscase: “ChattingChuck@aol.com”), and to change the “Send” button tobecome a, “Send Email” button 543.

FIG. 23A depicts another exemplary screenshot of universal input field501 in which back-end system 108 has determined that “Text” is the bestway to contact the identified recipient (in this case, “BillWetherell”), and back-end system 108 has modified the universal inputfield 501 to change the “Send” button to become a, “Send Text” button545.

FIG. 23B depicts another exemplary screenshot of universal input field501 in which back-end system 108 has determined that “IM” is the bestway to contact the identified recipient (in this case, “BillWetherell”), and back-end system 108 has modified the universal inputfield 501 to change the “Send” button to become a, “Send IM” button 547.

FIG. 24A depicts another screenshot of an exemplary universal inputfield 501, where back-end system 108 modifies the displayed input fieldto include notification 548 of why the back-end system 108 selected thecommunications channel that it did, consistent with step 610 of method600.

FIG. 24B depicts another screenshot of an exemplary universal inputfield 501, in which a user may select an option to “Turn off Auto-Mode”using drop-down button 551, the selection of which reverts the operationof universal input field 501 to the manual mode described with referenceto FIGS. 2-20.

FIG. 25 depicts another screenshot of an exemplary universal input field501, in which, while the back-end system 108 is still in auto-mode, theuser may select “Status Update” icon 553, to post a status update, asalready described with reference to FIGS. 17A and 19, instead ofallowing the system to automatically select a communication channel fora given recipient.

FIG. 26 depicts another screenshot of an exemplary universal input field501, in which, while the back-end system 108 is still in auto-mode, theuser may select “Share Pictures” icon 555, to share multimedia or otherfiles, as already described with reference to FIG. 20, instead ofallowing the system to automatically select a communication channel fora given recipient.

It will be appreciated that any suitable configuration of processors anddata storage devices may be selected to carry out the embodiments ofmulti-channel messaging system 103, including back-end systems 108. Thehardware associated with multi-channel messaging system 103, includingback-end systems 108, may be selected to enable quick response tovarious business needs, relatively fast prototyping, and delivery ofhigh-quality solutions and results. An emphasis may be placed onachieving high performance through scaling on a distributedarchitecture. The selected hardware may be flexible, to allow for quickreconfiguration, repurposing, and prototyping for research purposes. Thedata flows and processes described herein are merely exemplary, and maybe reconfigured, merged, compartmentalized, and combined as desired. Theexemplary modular architecture described herein may be desirable forperforming data intensive analysis. A modular architecture may also bedesired to enable efficient integration with external platforms, such ascontent analysis systems, various plug-ins and services, etc. Finally,the exemplary hardware and modular architecture may be provided withvarious system monitoring, reporting, and troubleshooting tools.

Embodiments of the present disclosure may include a method or process,an apparatus or system, or computer software on a computer medium. It isintended that various modifications may be made without departing fromthe spirit and scope of the following claims. For example, advantageousresults still could be achieved if steps of the disclosed techniqueswere performed in a different order and/or if components in thedisclosed systems were combined in a different manner and/or replaced orsupplemented by other components. Other implementations are within thescope of the following exemplary claims.

The many features and advantages of the present disclosure are apparentfrom the detailed specification, and thus, it is intended by theappended claims to cover all such features and advantages of thedisclosure which fall within the true spirit and scope of thedisclosure. Further, since numerous modifications and variations willreadily occur to those skilled in the art, it is not desired to limitthe disclosure to the exact construction and operation illustrated anddescribed, and accordingly, all suitable modifications and equivalentsmay be resorted to, falling within the scope of the disclosure.

1. A computer-implemented method for electronically distributingmessages, comprising: displaying to a user, over a network, an inputfield for entering messages; receiving from the user, over the networkand by entry into the input field, a message, an identification of oneor more recipients, and a selection of a communication channel;determining whether an identifier is stored in relation to eachrecipient for the selected communication channel; and electronicallysending, to each recipient with a stored identifier, the message via theselected communication channel.
 2. The method of claim 1, wherein thecommunication channel includes at least one of an email, SMS textmessaging, instant messaging, and social network messaging.
 3. Themethod of claim 1, wherein if an identifier is not stored in relation toa recipient for the selected communication channel, the method furthercomprises at least one of the following steps: transmitting an errormessage to the user; requesting, via the input field, entry of anaddress, phone number, or unique ID for the recipient; and requesting,via the input field, the selection of an alternative communicationchannel.
 4. The method of claim 1, wherein the method further comprisesdisplaying the input field to the user using an application running onan operating system.
 5. The method of claim 1, wherein the input fieldis displayed to the user as a toolbar of a web browser.
 6. The method ofclaim 1, wherein the input field is implemented as an SMS messagingrecipient in a mobile device.
 7. The method of claim 1, wherein theinput field is displayed to the user at the top of an e-mail based webportal.
 8. The method of claim 1, further comprising: if the selectedcommunication channel is SMS text messaging and the message exceeds alength permitted for SMS text messaging, separating the message into aplurality of text messages and displaying, to the user, the number oftext messages that will be sent to transmit the message.
 9. The methodof claim 1, further comprising: providing a plurality of user interfacefunctions with the input field, by which the user can switch betweenselected communication channels, add or remove selected recipients, andadd or remove text in the message.
 10. The method of claim 1, furthercomprising: displaying a plurality of icons in the input field, eachicon representing a different communication channel that the user canmanipulate to select a communication channel for sending the message.11. A system for electronically distributing messages over communicationchannels, the system comprising: at least one database for storinginstructions for operating an input field and transmitting messages overa plurality of different communication channels; and at least oneprocessing system configured to execute the instructions and perform amethod including: displaying to a user, over a network, an input fieldfor entering messages; receiving from the user, over the network and byentry into the input field, a message, an identification of one or morerecipients, and a selection of a communication channel; determiningwhether an identifier is stored in relation to each recipient for theselected communication channel; and electronically sending, for eachrecipient with a stored identifier, the message via the selectedcommunication channel.
 12. The system of claim 11, wherein theprocessing system is further configured such that: if the selectedcommunication channel is SMS text messaging and the message exceeds alength permitted for SMS text messaging, the processing system separatesthe message into a plurality of text messages and presents, to the user,the number of text messages that will be sent to transmit the message.13. The system of claim 11, wherein the processing system is furtherconfigured for providing user interface functions with the input field,by which the user can switch between selected communication channels,add or remove selected recipients, and add or remove text in themessage.
 14. The system of claim 11, wherein the processing systems isfurther configured for displaying a plurality of icons in the inputfield, each icon representing a different communication channel that theuser can manipulate to select a communication channel for sending themessage.
 15. The system of claim 11, wherein the communication channelincludes at least one of email, SMS text messaging, instant messaging,and social network messaging.
 16. The system of claim 11, wherein, if anidentifier is not stored in relation to a recipient for the selectedcommunication channel, the processing system is further configured toperform at least one of the following steps: transmitting an errormessage to the user; requesting, via the input field, entry of anaddress, phone number, or unique ID for the recipient for the selectedcommunication; or requesting, via the input field, the selection of analternative communication channel.
 17. A computer-implemented method forelectronically distributing messages, the method comprising: displayingto a user, over a network, an input field for entering messages;receiving from the user, over the network and by entry into the inputfield, a message, an identification of one or more recipients, and arequest for auto-selection of a communication channel; determiningwhether an address, phone number, or unique ID is stored in relation toeach recipient for each of a plurality of available communicationchannels; ranking the available communication channels for which anaddress, phone number, or unique ID is stored in relation to eachrecipient, according to one or more criteria; and sending the message toat least one recipient based on the ranking.
 18. Thecomputer-implemented method of claim 17, wherein the one or morecriteria include at least one of available contact information,communication history, current availability, and social norms.
 19. Thecomputer-implemented method of claim 17, further comprising: sending themessage via the available communication channel that is highest rankedafter completion of the ranking.
 20. The computer-implemented method ofclaim 17, further comprising: displaying to the user the reason why thehighest-ranked communication channel is highest ranked after completionof the ranking.